import {reqCode,reqRegister,reqLogin,reqLogininfo,reqLoginout} from '@/api/index'
export default {
    actions:{
        async reqUserCode({commit},phone){
            // 向服务器发送请求获取验证码信息
          let userCode = await reqCode(phone)
          console.log(userCode);
          if (userCode.code==200) {
            //   把获取的验证码信息传递给mutations
            commit('USERCODE',userCode.data)
            return 'ok'
          }
          else{
              return Promise.reject('error')
          }
        },
        // 用户注册
        async reqUserRegister({commit},params){
            // 向服务器发送请求获取注册结果
          let result = await reqRegister(params)
          console.log(result);
          if (result.code==200) {
            return 'ok'
          }
          else{
              return Promise.reject('error')
          }
        },
        // 用户登录
        async reqUserLogin({commit},params){
            // 向服务器发送请求获取登录结果
          let result = await reqLogin(params)
          console.log(result);
          if (result.code==200) {
            sessionStorage.setItem('token',result.data.token)
            commit('LOGIN',result.data.token)
            return 'ok'
          }
          else{
              return Promise.reject('error')
          }
        },
         // 获取用户登录信息（经过token校验）
         async reqLoginInfo({commit}){
          // 向服务器发送请求获取登录结果
        let result = await reqLogininfo()
        console.log(result);
        if (result.code==200) {
          // sessionStorage.setItem("userinfo",JSON.stringify(result.data))
          commit('LOGININFO',result.data)
          return 'ok'
        }
        else{
            return Promise.reject('error')
        }
      },
      // 用户退出登录
      async reqLoginOut({commit}){
        // 向服务器发送请求
      let result = await reqLoginout()
      console.log(result);
      if (result.code==200) {
        commit('CLEAR')//清除token,用户登录信息
        return 'ok'
      }
      else{
          return Promise.reject('error')
      }
    }
    },
    mutations:{
        // 把验证码存到state
        USERCODE(state,data){
            state.usercode=data
        },
        // 把登录成功，服务器给的数据-令牌存仓库(用户唯一标识符)
        LOGIN(state,data){
          state.token=data
      },
        // 把登录成功服务器给的数据
        LOGININFO(state,data){
          state.userlogininfo=data
      },
      CLEAR(state){
        state.token='',
        state.userlogininfo={}
      }
    },
    state:{
        usercode:'',
        token:sessionStorage.getItem('token'),
        userlogininfo:{}
    }
}